Date.prototype.format = function(fmt) {
	padLeftZero = function(str) {
		return('00' + str).substr(str.length)
	}
	if(/(y+)/.test(fmt)) {
		fmt = fmt.replace(RegExp.$1, (this.getFullYear() + '').substr(4 - RegExp.$1.length))
	}
	let o = {
		'M+': this.getMonth() + 1,
		'd+': this.getDate(),
		'h+': this.getHours(),
		'm+': this.getMinutes(),
		's+': this.getSeconds()
	}
	for(let k in o) {
		if(new RegExp(`(${k})`).test(fmt)) {
			let str = o[k] + ''
			fmt = fmt.replace(RegExp.$1, RegExp.$1.length === 1 ? str : padLeftZero(str))
		}
	}
	return fmt
}

String.prototype.hasClass = function(cls) {
	return this.split(' ').find(function(value) {
		return value === cls
	}) ? true : false
}

String.prototype.addClass = function(cls) {
	if(!this.hasClass(cls)) {
		var classList = this.split(' ').filter(function(value) {
			return value !== ''
		});
		classList.push(cls)
		return classList.join(' ')
	}
	return this
}

String.prototype.removeClass = function(cls) {
	if(this.hasClass(cls)) {
		return this.split(' ').filter(function(value) {
			return value !== cls
		}).join(' ')
	}
	return this;
}